<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author julien
 */

abstract class ViewElement {
    
    protected $id=null;
    protected $class=null;
    protected $displayEndingSpace = 0;  
    protected $visible = true;
    
  
    public function setVisible(){
        $this->visible = true;
    }
    
    public function unsetVisible(){
        $this->visible = false;
    }
    
    
    public function getHTML(){
        // Cette fonction doit retourner une chaine de charactere 
        // représentant l'objet.
        // Elle doit être surchargée.
        
        Throw new Exception("You have to override getHTML() method!");
    }
                                            
    
    public function setClass($class){
        // Cette fonction doit changer la classe CSS de l'objet
        $this->class = $class;
    }
    
    public function getClass(){
        // Cette fonction doit retourner la classe CSS de l'objet
        return $this->class;
    }
        
    public function  getId(){
        // Cette fonction doit changer l'id CSS de l'objet
        return $this->id;
    }   
    
    public function addEndingSpace(){
        $this->displayEndingSpace++;
    }
    
    public function unsetEndingSpace(){
        $this->displayEndingSpace--;
    }
    
    
    protected function getClassAndIdStatement(){
        $return ="";
         if(! is_null($this->class) && $this->class != ""){
            $return .='class="'.$this->class.'" ';
        }
        if(! is_null($this->id) && $this->id != ""){
            $return .='id="'.$this->id.'" ';
        }
        
        return $return;
    }

    protected function getEndingSpace(){
        $return ="";
        for($i = 0; $i < $this->displayEndingSpace; $i++){
            $return .='<br/>'."\n";
        }
        $return .="\n";
        return $return;
    }
}
?>
